//打开友链表单
function openForm() {
    $('#Apply').animate({ backgroundColor: 'rgba(0,0,0,0.5)' }, { speed: 300, queue: false }).show(600);
}
//关闭友链表单
function closeForm() {
    back();
    $('#Apply').animate({ backgroundColor: 'rgba(0,0,0,0)' }, { speed: 300, queue: false }).hide(600);
}

//友链申请表单
function switchForm(click) {
    $('.errormsg').hide();
    //高亮点击选项
    $(click).addClass('select').siblings().removeClass('select');
    //切换对应表单
    ($(click).attr('id') == 'Add') ? ($('#msgbox').stop().animate({ left: '0' }, 600)) : ($('#msgbox').stop().animate({ left: '-100%' }, 600))
}

//表单确认
var formtype;
var Addstate;
var Mofidystate;

//添加数据检查
function addmsgcheck() {
    Addstate = 0;
    //密码检查
    var psdRegexp = /^([A-Za-z0-9]{6,24})+$/;
    if (psdRegexp.test($('#password').val()) && $('#repeat').val() == $('#password').val()) Addstate += 1;
    //用户名检查
    var idRegexp = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/;
    if (idRegexp.test($('#id').val())) Addstate += 1;
    //邮箱检查
    var emailRegexp = /(?:[0-9a-zA-Z_]+.)+@[0-9a-zA-Z]{1,13}\.[a-zA-Z]{1,3}/;
    if (emailRegexp.test($('#email').val())) Addstate += 1;
    //链接检查
    var urlRegexp = /[//]/;
    if (urlRegexp.test($('#imgsrc').val()) && urlRegexp.test($('#blogurl').val())) Addstate += 1;
}

//修改数据检查
function modifymsgcheck() {
    Mofidystate = 0;
    //用户名检查
    var idRegexp = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/;
    if (idRegexp.test($('#id_modify').val())) Mofidystate += 1;
    //链接检查
    var urlRegexp = /[//]/;
    if (urlRegexp.test($('#imgsrc_modify').val()) && urlRegexp.test($('#blogurl_modify').val())) Mofidystate += 1;
}

//表单内容初步检查
function confirm(type) {
    type == 'Add' ?
        [
            addmsgcheck(),
            Addstate >= 4 ? [
                $('#confirm').stop().animate({ top: '0' }, 400),
                formtype = 'Add',
                //预览内容
                $('#friendid').text($('#id').val()),
                $('#friendslogan').text($('#signature').val().replaceAll('&nbsp;', ' ')),
                $('#msgpreview').find('img').attr('src', $('#imgsrc').val()),
                $('.friendBtn').find('a').attr('href', $('#blogurl').val()),
            ] : [
                alert('填写内容不符合要求或两次密码不一致')
            ]
        ] : [
            modifymsgcheck(),
            Mofidystate >= 2 ? [
                $('#confirm').stop().animate({ top: '0' }, 400),
                formtype = 'Modify',
                //预览内容
                $('#friendid').text($('#id_modify').val()),
                $('#friendslogan').text($('#signature_modify').val().replaceAll('&nbsp;', ' ')),
                $('#msgpreview').find('img').attr('src', $('#imgsrc_modify').val()),
                $('.friendBtn').find('a').attr('href', $('#blogurl_modify').val()),
            ] : [
                modifylock ? alert('请先进行身份验证') : alert('填写内容不符合要求')
            ]
        ];


}

//身份验证
var modifylock = true;
function modifyConfirm() {
    ($('#password_modify').val() != '' && $('#email_modify').val() != '') ? [
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/ModifyConfirm',
            data: {
                email: $('#email_modify').val(),
                password: md5(md5($('#password_modify').val()))
            },
            success: function (result) {
                result == '404' ? [
                    alert("邮箱或密码错误"),
                ] : [
                    modifylock = false,
                    $('.modifylock').find('input').removeAttr("disabled").removeClass('Lock'),
                    $('#id_modify').val(result.ID),
                    $('#signature_modify').val(result.slogan.replaceAll('&nbsp;', ' ')),
                    $('#imgsrc_modify').val(result.imgsrc),
                    $('#blogurl_modify').val(result.blogurl),
                ]
            }
        })
    ] : [
        alert('请输入验证信息')
    ]
}

//第一次确认提交
function enter() {
    var psdmd5;
    $("input[type='checkbox']").prop('checked').toString() == 'false' ?
        [
            $('#checkerror').show()
        ] : [
            formtype == 'Add' ? [
                //密码加密
                psdmd5 = md5(md5($('#repeat').val())),
                $('#password').val(psdmd5),
                $('#repeat').val(psdmd5),
                //个性签名转译
                $('#signature').val($('#signature').val().replaceAll(' ', '&nbsp;')),
            ] : [
                //个性签名转译
                $('#signature_modify').val($('#signature_modify').val().replaceAll(' ', '&nbsp;')),
            ],
            entersubmit()
        ];
}

//最终确认提交
function entersubmit() {
    if (formtype == 'Add') {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/FriendAdd',
            data: $('#AddForm').serialize(),
            success: function (result) {
                if (result == '200') {
                    alert("提交成功");
                    $('#AddForm').resetForm();
                    closeForm();
                } else {
                    alert("提交失败，信息错误或重复提交");
                    back();
                }
            }
        })
    } else if (formtype == 'Modify') {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/FriendModify',
            data: $('#ModifyForm').serialize(),
            success: function (result) {
                if (result == '200') {
                    alert("修改成功");
                    $('#ModifyForm').resetForm();
                    closeForm();
                } else {
                    alert("修改失败，信息错误或发生其他错误");
                    back();
                }
            }
        })
    } else {
        alert('发生错误，请尝试刷新页面')
    }
}

//返回上一级表单
function back() {
    $('#confirm').stop().animate({ top: '100%' }, 400);
    $("input[type='checkbox']").prop('checked', false);
    $('#password').val('');
    $('#repeat').val('');
    $('#signature').val($('#signature').val().replaceAll('&nbsp;', ' ')),
        $('#checkerror').hide();

    modifylock = true;
    $('.modifylock').find('input').attr("disabled", 'disabled').addClass('Lock');
    $('#ModifyForm').resetForm();
}


//用户协议勾选框
var checkstate;

function checked() {
    $("input[type='checkbox']").prop('checked').toString() == 'false' ?
        [$('#checkerror').hide(),
        checkstate = true, $('#formconfirm').hover(function () {
            $('#formconfirm').css({ "cursor": "pointer", "opacity": "1" })
        }, function () {
            $('#formconfirm').css({ "cursor": "pointer", "opacity": "0.7" })
        })] : [checkstate = false, $('#formconfirm').hover(function () {
            $('#formconfirm').css({ "cursor": "default", "opacity": "0.7" })
        }, function () {
            $('#formconfirm').css({ "cursor": "default", "opacity": "0.7" })
        })];
    $("input[type='checkbox']").prop('checked', checkstate);
}

//截取笔记标签
function displayTags() {
    $.ajax({
        type: 'GET',
        dataType: 'json',
        url: 'https://gitee.com/api/v5/repos/' + giteeID + '/mweb/contents/archives.html',
        success: function (result) {
            var data = utf8to16(window.atob(result.content));
            data = data.substring(data.indexOf('<a'), data.lastIndexOf('</a>'));

            var tagRegExp = /tag[\_][\u4e00-\u9fa5a-zA-Z0-9\%]+\.html/g;

            var taghref = data.match(tagRegExp);

            var tagList = `<a class="notetag" onclick="getTags('index.html')">全部</a>`;
            taghref.forEach(function (item) {
                item = decodeURIComponent(item);
                tagList += `
                <a class="notetag" onclick="getTags('${item}')">
                    ${item.substring(4, item.lastIndexOf('.html'))}
                </a>
            `
            })
            document.getElementById("notestag").innerHTML = tagList;
        }
    })
}

function getTags(url) {
    $('#notestag').show();
    document.getElementById('notes_iframe').contentWindow.getTags(url);
}